From: Florian Müllner Date: Thu, 17 May 2012 13:55:35 +0000 (+0200) Subject: sessionMode: Add allowKeybindingsWhenModal property X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~6560 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=de69c719fb29d63d287699cb8328ee866711badc;p=gnome-shell.git sessionMode: Add allowKeybindingsWhenModal property Add a sessionMode.allowKeybindingsWhenModal property, which determines whether keybindings should still be handled while a modal dialog is up or not. https://bugzilla.gnome.org/show_bug.cgi?id=676156 --- diff --git a/js/ui/main.js b/js/ui/main.js index 1e2a89d01..66340255f 100644 --- a/js/ui/main.js +++ b/js/ui/main.js @@ -563,6 +563,11 @@ function _globalKeyPressHandler(actor, event) { if (event.type() != Clutter.EventType.KEY_PRESS) return false; + if (!sessionMode.allowKeybindingsWhenModal) { + if (modalCount > (overview.visible ? 1 : 0)) + return false; + } + let symbol = event.get_key_symbol(); let keyCode = event.get_key_code(); let ignoredModifiers = global.display.get_ignored_modifier_mask(); @@ -571,11 +576,6 @@ function _globalKeyPressHandler(actor, event) { // This relies on the fact that Clutter.ModifierType is the same as Gdk.ModifierType let action = global.display.get_keybinding_action(keyCode, modifierState); - // Other bindings are only available to the user session when the overview is up and - // no modal dialog is present. - if (sessionMode.sessionType == Shell.SessionType.USER && (!overview.visible || modalCount > 1)) - return false; - // This isn't a Meta.KeyBindingAction yet if (symbol == Clutter.Super_L || symbol == Clutter.Super_R) { overview.hide(); diff --git a/js/ui/sessionMode.js b/js/ui/sessionMode.js index 737b5742b..c66e92f04 100644 --- a/js/ui/sessionMode.js +++ b/js/ui/sessionMode.js @@ -13,6 +13,7 @@ const _modes = { showCalendarEvents: false, allowSettings: false, allowExtensions: false, + allowKeybindingsWhenModal: true, sessionType: Shell.SessionType.GDM }, 'user': { hasOverview: true, @@ -20,6 +21,7 @@ const _modes = { showCalendarEvents: true, allowSettings: true, allowExtensions: true, + allowKeybindingsWhenModal: false, sessionType: Shell.SessionType.USER } };